package chapter06

/**
 * 面向对象-》特质
 * 自身类型
 */
object Test16_TraitSelfType {
  def main(args: Array[String]): Unit = {
    val user = new RegisterUser("nann", "22")
    user.insert()
  }
}

//用户类
class User(val name: String, val password: String)

trait UserDao {
  //TODO 1、可以认为当前的UserDao 他的自身类型定义成了User
  //TODO 2、可以认为当前操作时候、可以认为当中有一个User
  _: User =>

  def insert(): Unit = {
    println(s"insert into db ${this.name} ${this.password}")
  }
}

//定义注册用户类
class RegisterUser(name: String, password: String) extends User(name, password) with UserDao